// 路由工程化配置
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)

// 创建路由对象
const router = new VueRouter({
    routes: [
        // name path component redirect children
        // 登录
        {
            name: 'default',
            path: '/',
            redirect: { path: '/login' },
        },
        {
            name: 'login',
            path: '/login',
            // 组件使用异步加载的方式，只有用到了这个组件才进行组件的加载
            component: () => import('@/views/login.vue')
        },
        // 首页
        {
            name: 'index',
            path: '/index',
            // 组件使用异步加载的方式，只有用到了这个组件才进行组件的加载
            component: () => import('@/views/index.vue'),
            redirect: { path: '/index/welcome' },
            // redirect: { name: 'welcome' },
            children: [
                {
                    name: 'welcome',
                    path: 'welcome',
                    component: () => import('@/views/welcome.vue'),
                }, {
                    // 文章列表
                    name: 'aiticleList',
                    path: 'aiticleList',
                    component: () => import('@/views/aiticleList.vue'),
                }, {
                    // 配置路由：添加路由可选参数  参数后面使用 ？id 后面加个 ‘ ? ’ ，将 id 设置为可选参数
                    // 文章发布
                    name: 'articlePublish',
                    // 添加可选参数？
                    path: 'articlePublish/:id?',
                    component: () => import('@/views/articlePublish.vue'),
                }
            ]

        },
    ]
})

import { Message } from 'element-ui'
// 添加导航守卫，除了登录之外的所有页面都需要进行token的验证
router.beforeEach((to, from, next) => {
    if (to.name == 'login') {  // 说明去登陆,直接跳转
        next()
    } else { // 说明需要验证的页面
        let token = (JSON.parse(localStorage.getItem('heima_manager')) || '{}').token
        if (token) {
            next()
        } else {
            Message('未登录,请先登录')
            next({ path: '/login' })
        }
    }

})

// 暴露
export default router

